1. Field of the Invention
The present invention relates to object based computer systems, and more specifically, to object based computer systems having a plurality of stations.
2. Description of the Prior Art
An object based system is a computer system for processing data organized in units termed objects. Typical objects are textual documents, drawings, and spreadsheets. These objects correspond to the files of more conventional systems, but one essential feature of objects is that each object functionally includes the processing arrangements required for that object. Thus, a document object includes a word processor, a folder object includes means for organizing documents, etc. A spreadsheet object will often include a variety of alternative means of displaying its contents, e.g. tabular displays, bar charts, and pie diagrams.
A further essential feature of an object based system is that objects can include each other (though loops are not normally allowed); this relationship is known as a parent-child relationship. Thus, a folder object can include a number of document objects, a document object can include a spreadsheet object and a drawing object, and so on. The significance of this is that individual objects can be constructed independently and then linked together to form a compound object. Hence, if a spreadsheet object is changed, e.g. by altering some of the figures in it, not only will the rest of the figures in the spreadsheet be updated, but also the figures copied into parent objects such as documents will be automatically updated. Such links are permanent in the sense that once created, they persist until some positive action is taken to destroy them. (In particular, they persist when the system is shut down and later re-started.)
An object based system comprises, in addition to a plurality of objects, an object management facility which organizes the objects and the relationships between them. The object management facility maintains a list of objects in the system and a list of which objects are active. It also maintains lists of links between objects, i.e. which objects include which (genealogical tables). In principle, this link information is held in the objects themselves. In practice, however, it is convenient for this link information to be held in portions of the objects which are separated from the main bodies of the objects and kept together in lists which can be manipulated by the object management facility. This enables housekeeping to be done more easily. For example, if a user tries to include one object in another, one housekeeping task is to check that this does not result in a closed loop, and it is easier to do this if the linkages are in a linkage table than if the various branches of the tree of included objects (descendants) have to be traced by extracting information from each of the objects in the tree.
A specific object based system is described in detail in U.S. Pat. No. 4,953,080, filed Apr. 25, 1988, entitled "Object Management Facilities for Maintaining Data in a Computer System" in the names of John Andrew DYSART, Peter Stuart SHAWMAN, William M CROWE, Charles H WHELAN, Peter M WILLIAMS, Brian W MCBRIDE, Brian MURDOCH, and John RF SENIOR, and assigned to Hewlett-Packard Company, the text of which is hereby incorporated by reference in its entirety.
The present invention is primarily concerned with the organization of an object based system having a plurality of user stations. Such a system may be provided by a single central processing device having a plurality of user stations coupled to it, or it may be provided by a distributed processing network consisting of a number of independent processing units each having a respective station associated with it. However, the invention is also concerned with an object based system having a plurality of storage domains supported on a single station.
A number of problems arise in a distributed processing network of the type to which the invention is directed in comparison with single-station systems. One problem is what happens if two separate users attempt to work on the same object. This problem can be dealt with by suitable design of the objects--either an object is designed so that two users can work on it simultaneously, or it is designed so that once one user is working on it, other users will not be allowed to work on it at the same time. More generally, there is the problem of what happens if there is some interaction between what the two users are doing as when one user is manipulating the figures in a spreadsheet object and another user is using some of those figures in a text object. This problem is relatively easy to deal with, since means are necessarily provided whereby a parent object can obtain information from an included (child) object. What is needed is, in essence, for the child to keep track of what information the parent has obtained from it, and, if that information changes, to send the updated information to the parent. (The child could, for example, send an update on every change of its own information.) The parent will have means for incorporating the information obtained from the child into itself, and must be able to update itself when that information changes. (The parent could in effect reinitialize itself every time it receives an update from the child.)
In addition to these problems, which are obvious, there are more subtle problems. It is these latter problems with which the present invention is primarily concerned. For example, if the system is a distributed processing system, the number of active stations in the system will vary as different users switch their stations on and off. Hence, which objects are available to a given user will vary. The user's own objects--those on the user's own processor--will of course always be available, but other users' objects will sometimes be available and sometimes not. Further, the system configuration will also change as users switch on and off. It also will be desirable for users to be able to pass objects between themselves, so the location of a given object may vary from time to time. There will be similar phenomena in a single-processor system as different users log on and log off provided that the users own their objects and access to them is only permitted while the owner is logged on.
Accordingly, there is a long-felt need for a multi-station object based system which overcomes the above-mentioned problems. The present invention has been designed to meet this need.